package com.tqjc.entity;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.tqjc.system.core.annotation.QueryField;
import com.tqjc.system.core.model.QueryCondition;
import com.tqjc.work.TaskCallback;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;


@TableName(value = "task")
@DS("xianggang")
@EqualsAndHashCode(callSuper=false)
@Data
@Schema(description = "任务表格")
public class Task extends Model implements TaskCallback {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    @Schema(description = "任务ID")
    private int id;


    /**
     * 钢板号
     */
    @Schema(description = "钢板号")
    private String steelNos;
    /**
     * 任务类型
     */
    @QueryField(queryColumn="type", condition= QueryCondition.eq)
    @Schema(description = "任务类型")
    private String type;  //上线or下线


    @Schema(description = "任务状态")
    private int taskStatus;   //0为生成任务后，1为吸板后，2为放板后
    /**
     * 任务起始位置x
     */
    @Schema(description = "任务起始位置x")
    private Integer beginX;
    /**
     * 任务起始位置y
     */
    @Schema(description = "任务起始位置y")
    private Integer beginY;
    /**
     * 任务起始位置z
     */
    @Schema(description = "任务起始位置z")
    private Integer beginZ;
    /**
     * 任务结束位置x
     */
    @Schema(description = "任务结束位置x")
    private Integer endX;
    /**
     * 任务结束位置y
     */
    @Schema(description = "任务结束位置y")
    private Integer endY;
    /**
     * 任务结束位置z
     */
    @Schema(description = "任务结束位置z")
    private Integer endZ;

    /**
     * 辊道id
     */
    @Schema(description = "辊道id")
    private Integer rollerId;

    /**
     * 垛位id
     */
    @Schema(description = "垛位id")
    private Integer stockId;


    @Schema(description = "行数量")
    private Integer rowNum;

    @Schema(description = "列数量")
    private Integer columnNum;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间")
    @QueryField(queryColumn="begin_time", condition= QueryCondition.range)
    private Date beginTime;
    /**
     * 结束时间
     */
    @Schema(description = "结束时间")
    private Date endTime;

    @Override
    public void onPreExecute() {

    }

    @Override
    public void onPostExecute() {

    }
}

